package com.soft.javase.day06.datetime;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.time.temporal.ChronoUnit;
import java.util.Scanner;

/**
 * @author yzh
 * @desc TODO
 * @date 2025/4/24
 */
public class DateDemo2 {
    public static void main(String[] args) {

        System.out.println("-----计算出生日期至今的天数-----");
        LocalDate birth = LocalDate.of(2001, 6, 30);
        LocalDate now1 = LocalDate.now();
        long days = birth.until(now1, ChronoUnit.DAYS);
        System.out.println("出生至今的天数: " + days + " 天\n");

        System.out.println("-----当前日期三天后的日期是 (格式： 2024年10月29日 10:10:10 )-----");
        LocalDateTime now2 = LocalDateTime.now();
        LocalDateTime late = now2.plusDays(3);
        DateTimeFormatter formatter1 = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH:mm:ss");
        System.out.println("三天后的日期: " + formatter1.format(late)+"\n");

        System.out.println("-----一批食品的生产日期是：2024-5-10，保质期：180天，求过期时间-----");
        LocalDate production = LocalDate.of(2024, 5, 10);
        LocalDate expiration = production.plusDays(180);
        DateTimeFormatter formatter2 = DateTimeFormatter.ofPattern("yyyy-MM-dd");
        System.out.println("过期时间: " + formatter2.format(expiration)+"\n");

        System.out.println("-----求上个月的第三天是星期几？-----");
        LocalDate now3 = LocalDate.now();
        LocalDate day = now3.minusMonths(1).withDayOfMonth(3);
        DateTimeFormatter formatter3 = DateTimeFormatter.ofPattern("EEEE");
        System.out.println("上个月的第三天是"+ formatter3.format(day)+"\n");

        System.out.println("-----找出下个月的倒数第3天是哪天-----");
        LocalDate now4 = LocalDate.now();
        LocalDate nextMonth = now4.plusMonths(1);
        LocalDate lastDay = nextMonth.withDayOfMonth(nextMonth.lengthOfMonth());
        LocalDate lastThirdDay = lastDay.minusDays(2);
        System.out.println("下个月倒数第三天是: " + lastThirdDay+"\n");

        System.out.println("-----请问今天是今年的第多少天？-----");
        LocalDate now5 = LocalDate.now();
        System.out.println("今天是今年的第 " + now5.getDayOfYear() + " 天\n");

        System.out.println("-----输入任意一个年份，得到这年的2月份有几天？-----");
        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入年份: ");
        int year = scanner.nextInt();
        int dayOfMonth = LocalDate.of(year, 3, 1).minusDays(1).getDayOfMonth();
        System.out.println(year+"年的二月份有"+dayOfMonth+"天\n");

        System.out.println("-----新闻类：标题，内容，时间   三个属性。 有10条新闻，按照时间的降序排列。-----");


        System.out.println("-----学生类：姓名，学号，出生日期  三个属性。找出比“张三”大的所有同学信息。-----");

    }
}
